import { message } from 'antd';
/**
 *
 * @param result 要处理的Reducer返回对象
 * @param winners 请求完成并且请求success成功回调, 接收参数result
 * @param loser 请求完成并且请求success失败回调, 若存在直接回调此方法,接收参数要处理的Reducer返回对象
 * @param final 请求完成, 都会触发的final函数
 */
export const rollout = (result, prepare, winners, loser, final) => {
  if (result) {
    if (result.sign === 'doing') {
      prepare && prepare(result);
    }

    if (result.sign === 'done') {
      if (result.status === 200) {
        winners(result.result, result.message, result.paging);
      } else {
        if (loser) {
          loser(result);
        } else {
          // result.msg && alert(result.msg);
          result.message &&
            //alert(result.msg);
            // alert('服务器错误, 请联系管理员!');
            console.log(result.message);
          message.error(result.message);
        }
      }

      final && final();
    }

    result.sign = 'over';
  }
};

export default rollout;
